home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 9301 / SZIMU3.CD < prev    next >
Text File  |  1995-04-18  |  25KB  |  574 lines

  1.           @VSzimuláció 3.@N
  2.  
  3.           @VA versengés folytatódik...@N
  4.  
  5.           Sorozatunk  második  részében  belekezdtünk  az  élet  --  a
  6.           születés   és   halál  --  statisztikai  modellezésébe.  Egy
  7.           egyszerû   demográfiai   modellt   alkottunk,   majd   fajok
  8.           együttélését   vizsgáltuk   egy   játékos,   ámde  meglepôen
  9.           valósághû  eredményt szolgáltató -- nyulak, rókák, káposzták
  10.           együttesét  szimuláló  -- modellen. Most ugyanezt a kérdést,
  11.           fajok  együttélését/versengését  fogjuk  elemezni -- némileg
  12.           más, szándékunk szerint pontosabb megközelítést alkalmazva.
  13.  
  14.            @VKinn a bárány, benn a farkas@N
  15.  
  16.           A   novemberi   számunkban   ismertetett   nyúl-róka   (N-R)
  17.           modellben  szereplôink röghöz voltak kötve, nem volt mozgást
  18.           megvalósító  lépés, eljárás. A születés, és halál szorosan a
  19.           táplálékszerzéshez  kötôdött:  csak  éhhalál  vagy erôszakos
  20.           halál  létezett; szaporodásra pedig csak frissiben jóllakott
  21.           egyedek   voltak   képesek,   nem  beszélve  arról,  hogy  a
  22.           tápláléklánc   utolsó   eleme,   a   káposzta   meglehetôsen
  23.           gátlástalanul  (tudniillik  minden  üres helyet kihasználva)
  24.           szaporodott.  E  hiányosságokat próbáljuk most kiküszöbölni,
  25.           elôre  bocsájtva,  hogy  az  új modellen is lesz (lehet) még
  26.           mit finomítani. Mit kell tudnunk tehát e szép, új világról?
  27.  
  28.           Immár   megszokott,   sakktáblaszerû  univerzumunkat  megint
  29.           három  fajhoz  tartozó  élôlény  népesíti  be. A ragadozókat
  30.           képviselik   a  farkasok  (F);  a  növényevôk  bárányok  (B)
  31.           képében  vannak  jelen;  míg  a  növényvilágot egyszerûen (s
  32.           némileg  kényszeredetten)  gaznak (G) nevezzük. A "teremtés"
  33.           során   meghatározzuk  az  egyes  fajokhoz  tartozó  egyedek
  34.           számát  (FDB, BDB, GDB), majd benépesítjük velük - praktikus
  35.           okokból   véletlenszerûen   -   a  világot,  azaz  a  V(N,M)
  36.           karakteres   tömböt.  Hogy  a  születés  és  a  halál  elôbb
  37.           említett  korlátait  csökkentsük,  vezessünk  be a farkasok,
  38.           bárányok   illetve  a  gaz  szaporodására,  fogyására  rájuk
  39.           jellemzô    állandókat,    melyek    az    illetô    esemény
  40.           valószínûségét  hivatottak  megadni.  îgy lesz "természetes"
  41.           halál  és  étkezéstôl  független  szaporodás is a modellben,
  42.           meghagyva  a  nyúl-róka modellbôl természetesen azt, hogy ha
  43.           nem  található  valamelyik  szereplô  szomszédságában  az  ô
  44.           tápláléka,   akkor  bizony  éhenhal;  illetve  a  "táplálék"
  45.           életének  végét  jelenti,  ha  a  "fogyasztója" szomszédjává
  46.           tette  rossz  sorsa. Az említett állandók jele legyen rendre
  47.           FS,  BS,  GS,  FH,  BH,  GH.  Értéküket  szintén a teremtési
  48.           fázisban  kell megadnunk, bár konstansként is szerepelhetnek
  49.           programunkban.  Ennyi  elôkészítés  után  lássuk  programunk
  50.           magját,  a  szimulációs lépést. (Maga a keretprogram, melyet
  51.           most is felhasználhatunk, októberi számunkban található).
  52.  
  53.            Szimulációs lépés;
  54.            (I,J) := Véletlenhely(N,M)
  55.            Esetszétválasztás:
  56.            V(I,J) = "F" esetén Farkaseljárás;
  57.            V(I,J) = "B" esetén Bárányeljárás;
  58.            V(I,J) = "G" esetén Gazeljárás;
  59.            Esetszétválasztás vége
  60.            Mozgás
  61.            Szimulációs lépés vége;
  62.  
  63.  
  64.           Ez  eddig  még  nem  sokat  mond  a várható történésekrôl, a
  65.           modell  szabályairól.  A  mûködés  lényege  nyilván az egyes
  66.           al-eljárásokban  lesz  (az  ördög  is  mindig a részletekben
  67.           bújik  meg),  tehát  lássuk  az  egyes  eseteknek  megfelelô
  68.           "egyedkezelô" algoritmusokat.
  69.  
  70.  
  71.            Farkaseljárás;
  72.            Van := Van_e_szomszéd_táplálék(I,J,"F","B");
  73.               Ha Van akkor (K,L) := Egy_szomszéd_táplálékhely(I,J,"B");
  74.               Ha RND < FH vagy nem(Van) akkor V(I,J) := "_"
  75.                                               FDB := FDB - 1;
  76.               különben
  77.                   Ha RND < FS akkor
  78.                    T(K,L) := "F"
  79.                           FDB := FDB + 1;
  80.                    különben
  81.                    T(K,L) := "_"
  82.                    BDB := BDB -1;
  83.            Farkaseljárás vége;
  84.  
  85.  
  86.           Tehát  egy  farkas  éhenhal,  ha  nincs elérhetô közelségben
  87.           bárány, de  rögzített eséllyel  (FH) aggkori  végelgyengülés
  88.           is  végezhet  vele,  hiába  veszi  körül  kivánatos bárányok
  89.           tömege.   Az  ezt   túlélô  farkas  a  bárányok   legnagyobb
  90.           bánatára  mindenképpen  táplákozik,  de  szaporodásra   csak
  91.           meghatározott  esetekben   (adott  valószínûséggel   -   FS)
  92.           kapható.  Az  értelemszerû  módosításokat  figyelembe   véve
  93.           hasonló szerkezetû  a bárányok  változását generáló  eljárás
  94.           is:
  95.  
  96.  
  97.            Bárányeljárás;
  98.               Van := Van_e_szomszéd_táplálék(I,J,"B","G");
  99.               Ha Van akkor
  100.                   (K,L) := Egy_szomszéd_táplálékhely(I,J,"G");
  101.               Ha RND < BH vagy nem(Van) akkor
  102.                   V(I,J) := "_";
  103.                   BDB := BDB - 1;
  104.               különben
  105.                   Ha RND < BS akkor
  106.                       T(K,L) := "B";
  107.                       BDB := BDB + 1;
  108.                   különben
  109.                   T(K,L) := "_"
  110.                   GDB := GDB -1;
  111.            Bárányeljárás vége;
  112.  
  113.  
  114.           Kicsivel    több    módosítást    igényel    a     növényzet
  115.           állapotváltozásait    (gyarapodását,    fogyását)     leíró,
  116.           elôállító "Gazeljárás" leírása,  hiszen a fû  a tápláléklánc
  117.           végén   található,   s   a   fentiekben   tisztázott  eseten
  118.           (tudniillik  a   bárány  pusztítja   gyepet),  már   csak  a
  119.           kiszáradás fenyegetô veszélyét kell figyelembe vennünk:
  120.  
  121.            Gazeljárás;
  122.               Van := Van_e_szomszéd_táplálék(I,J,"G","_")
  123.               Ha Van akkor
  124.                   (K,L) := Egy_szomszéd_táplálékhely(I,J,"_");
  125.               Ha RND < GH akkor
  126.                   V(I,J) := "_"
  127.                   GDB := GDB - 1;
  128.               különben
  129.                   Ha RND < GS és Van akkor
  130.                   T(K,L) := "G"
  131.                           GDB := GDB + 1;
  132.            Gazeljárás vége;
  133.  
  134.           Itt  elgondolkodhatunk  egy  másik  alternatíván is: a fenti
  135.           eljárásban a gaz csak a szomszédban képes szaporodni.  Miért
  136.           ne  hordhatná  el  a  szél  messzebbre  is a magokat? Azaz a
  137.           legelô  gyarapodásához  szükséges  üres  helyet  a  táblázat
  138.           egészén  keresnénk,  amitôl   modellünk  mozgalmasabbá,   és
  139.           egyben  kiszámíthatatlanabbá  is  válna.  Szintén  változást
  140.           eredményezhet   világunk    történelmében   a    szomszédság
  141.           értelmezése:  dolgozhatunk  a  szomszédkezelô   eljárásokban
  142.           (Van_e_szomszédtáplálék,  Egy_szomszéd_táplálékhely)   négy,
  143.           illetve nyolc szomszéddal, ezáltal végeredményben  módosítva
  144.           a túlélési,  pusztulási esélyeket.  Hasonlóan többféleképpen
  145.           közelíthetünk a  még hátralévô  "Mozgás" eljáráshoz.  Hiszen
  146.           írható egy ilyen rövid, egyszerû eljárás:
  147.  
  148.            Mozgás;
  149.               (X,Y) := Véletlenhely(N,M);
  150.               (U,V) := Véletlenhely(N,M);
  151.               Ha V(X,Y) <> "G" és V(U,V) <> "G" akkor
  152.                   Csere(V(X,Y),V(U,V));
  153.            Mozgás vége;
  154.  
  155.  
  156.           Ez  egyszerû,  véletlen   által  irányított  cserét   jelent
  157.           helyváltoztatásra   egyáltalán   képes   egyedek   (azaz   a
  158.           farkasok,  bárányok)  között.  Mondhatnánk  erre,  hogy  nem
  159.           igazán  valószerû,  amint  a  farkas-bárány  csere lezajlik;
  160.           legyen  a  mozgás  egy  egyedi,  véletlen,  de  üres  helyre
  161.           történô  elmozdulás.  Ez  is  egy  lehetôség,  de  vélhetôen
  162.           pontosabb  képet  hozunk  létre,  ha  a mozgást irányultnak,
  163.           vagy másképpen  fogalmazva tudatosabbnak  tekintjük. Ezt  is
  164.           több módon tehetjük meg. Hiszen mozoghat a farkas a  bárány,
  165.           a bárány  pedig a  gaz felé,  azaz a  jobb életfeltételek, a
  166.           több táplálék irányába. De a bárány foghatja menekülôre  is:
  167.           olyan helyre mozdul,  ahol kevesebb (vagy  egyáltalán nincs)
  168.           farkas   a   környéken.   De   a   bárányokon  kiütközhet  a
  169.           nyájszellem  (a  farkasok  pedig  itélhetik  elônyösebbnek a
  170.           hordát), tehát  úgy mozognak,  hogy fajtestvéreik  közelében
  171.           legyenek.   Érdemes   ezeket   a   lehetôségeket    megírni,
  172.           beprogramozni.  Mint  ahogy  érdemes  a  táblázat   egyszerû
  173.           kiiratása  mellett  a  folyamatosan  változó létszámadatokat
  174.           (FDB, BDB,  GDB), grafikonon  is megjeleníteni,  s ezáltal a
  175.           jelenségeket szemléletesen, jól láthatóan ábrázolni.
  176.  
  177.  
  178.            program egyutteles_2_v3;
  179.            [Nagy2Gábor
  180.            [A gazt viszi a szél, állatok elmennek, ha nincs táplálék@N
  181.  
  182.            uses crt,graph;
  183.            const fs=70; fh=12; bs=80; bh=10; gs=80;
  184.                  gh=14;
  185.  
  186.            type t1=array[1..20,1..20 of char;
  187.            var s,o,y,fdb,bdb,gdb:word;
  188.                van:boolean;
  189.                biz:string[3@N;
  190.                c,d:shortint;
  191.                a,b,kap:byte;
  192.                v:t1;
  193.                kar:char;
  194.                q,qq,code:integer;
  195.                fdbs,bdbs,gdbs:string;
  196.  
  197.            function kontroll(min,max:word; szoveg:string):word;
  198.            var a:word;
  199.            begin
  200.            [adatbevitel ellenôrzése
  201.             repeat
  202.              gotoxy(10,10);
  203.              write(szoveg,
  204.                    '(min:',min,';max:',max,'):');
  205.              readln(biz); val(biz,a,code); clrscr;
  206.             until (code=0) and (a<=max) and (a>min);
  207.             kontroll:=a;
  208.            end;
  209.  
  210.            procedure kezdet;
  211.            begin
  212.             clrscr;
  213.             writeln('Együttélés-2:Farkas-Bárány-Gaz');
  214.             write('A gazt viszi a szél, állatok');
  215.             writeln(' elmennek, ha nincs táplálék');
  216.             o:=kontroll(5,20,'oszlop');
  217.             s:=kontroll(5,20,'sor');
  218.             for a:=1 to o do
  219.              for b:=1 to s do v[a,b:=' ';
  220.             fdb:=kontroll(0,o*s,'farkas-szám');
  221.             bdb:=kontroll(0,o*s-fdb,'bárány-szám');
  222.             gdb:=kontroll(0,o*s-fdb-bdb,'gaz-szám');
  223.            end;
  224.  
  225.            procedure tolt2(d:word;e:char);
  226.            var c:word;
  227.            begin
  228.             for c:=1 to d do begin
  229.              repeat
  230.               a:=random(o)+1; b:=random(s)+1;
  231.              until v[a,b@N=' ';
  232.              v[a,b:=e;
  233.             end;
  234.            end;
  235.  
  236.            function van_tapl(a2,b2:byte; kus:char):boolean;
  237.            var k:byte;
  238.            begin
  239.             [van-e ehetô szomszéd@N
  240.             c:=-2; k:=0;
  241.             repeat
  242.              c:=c+1; d:=-2;
  243.               repeat
  244.                d:=d+1;
  245.                if (a2+c<=o) and (a2+c>0) and
  246.                   (b2+d>0) and (b2+d<=s) then
  247.                  if v[a2+c,b2+d@N=kus then k:=1;
  248.               until (d=1) or (k=1);
  249.             until (c=1) or (k=1);
  250.             if k=1 then van_tapl:=true
  251.              else van_tapl:=false;
  252.            end;
  253.  
  254.            procedure szomszed(a2,b2:byte;kus:char);
  255.            begin
  256.             [ehetô szomszéd adatai
  257.             repeat
  258.              repeat
  259.               c:=random(3)-1; d:=random(3)-1;
  260.              until (a2+c<=o) and (a2+c>0) and
  261.                    (b2+d>0) and (b2+d<=s);
  262.             until v[a2+c,b2+d=kus;
  263.            end;
  264.  
  265.            procedure gazhova;
  266.            var e:byte;
  267.            begin
  268.             [egy üres hely a születendô fûnek@N
  269.             e:=0;
  270.             repeat
  271.              e:=e+1; c:=random(o)+1; d:=random(s)+1;
  272.             until (e=8) or (v[c,d@N=' ');
  273.             if v[c,d=' ' then van:=true
  274.              else van:=false;
  275.             c:=c-a; d:=d-b;
  276.            end;
  277.  
  278.            procedure kozos(ante,el:char;sz,ha:byte);
  279.            var vel:byte;
  280.            begin
  281.             if el='g' then gazhova
  282.             else begin
  283.              van:=van_tapl(a,b,ante);
  284.              if van then szomszed(a,b,ante);
  285.             end;
  286.             vel:=random(100)+1;
  287.             [halálozás
  288.             if (vel<=ha) or ((van=false) and
  289.                (el<>'g')) then begin
  290.              v[a,b@N:=' ';
  291.              case el of
  292.               'f':fdb:=fdb-1;
  293.               'b':bdb:=bdb-1;
  294.               'g':gdb:=gdb-1;
  295.              end;
  296.             end
  297.             else begin
  298.              vel:=random(100)+1;
  299.              [születés@N
  300.              if vel<=sz then if van then begin
  301.               v[a+c,b+d:=el;
  302.               case el of
  303.                'f':begin
  304.                  bdb:=bdb-1;
  305.                  fdb:=fdb+1;
  306.                end;
  307.                'b':begin
  308.                  bdb:=bdb+1;
  309.                  gdb:=gdb-1;
  310.                end;
  311.                'g':gdb:=gdb+1;
  312.               end;
  313.              end;
  314.              [ehetô szomszéd meghal,ha nincs szülés
  315.              if vel>sz then if van then begin
  316.               v[a+c,b+d@N:=' ';
  317.               case el of
  318.                'f':bdb:=bdb-1;
  319.                'b':gdb:=gdb-1;
  320.               end;
  321.              end;
  322.             end;
  323.            end;
  324.  
  325.            procedure mozgas;
  326.            var hj:char;
  327.            begin;
  328.            repeat
  329.             a:=random(o)+1; b:=random(s)+1;
  330.            until (v[a,b='f') or (v[a,b@N='b');
  331.            case v[a,b of
  332.             'f':hj:='b';
  333.             'b':hj:='g';
  334.            end;
  335.             c:=random(o)+1;
  336.             d:=random(s)+1;
  337.              [csere@N
  338.             if van_tapl(a,b,hj)=false then begin
  339.              hj:=v[a,b@N; v[a,b:=v[c,d@N; v[c,d:=hj;
  340.             end;
  341.            end;
  342.  
  343.            procedure param;
  344.            var ey:char;
  345.            begin
  346.              a:=random(o)+1; b:=random(s)+1;
  347.              [kozos(ehetô szomszéd,v[a,b@N,
  348.               szül.arány,hal.arány
  349.               case v[a,b of
  350.               'f':kozos('b','f',fs,fh);
  351.               'b':kozos('g','b',bs,bh);
  352.               'g':kozos(' ','g',gs,gh);
  353.              end;
  354.              if v[a,b@N<>' ' then mozgas;
  355.            end;
  356.  
  357.            procedure alap;
  358.            var o:word;
  359.            begin
  360.             line(50,1,50,305);   line(50,101,600,101);
  361.             line(50,203,600,203);line(50,305,600,305);
  362.             outtextxy(2,30,'farkas');
  363.             outtextxy(2,130,'bárány');
  364.             outtextxy(2,230,'gaz');
  365.             outtextxy(80,320,'Vége: o');
  366.             outtextxy(250,320,'Grafikon tovább: i');
  367.            end;
  368.  
  369.            procedure kirajzol;
  370.            begin
  371.             putpixel(y,304-round(gdb/(o*s)*100),3);
  372.             putpixel(y,202-round(bdb/(o*s)*100),3);
  373.             putpixel(y,100-round(fdb/(o*s)*100),3);
  374.            end;
  375.  
  376.            procedure kiir2;
  377.            begin
  378.             str(fdb,fdbs); outtextxy(620,60,fdbs);
  379.             str(bdb,bdbs); outtextxy(620,150,bdbs);
  380.             str(gdb,gdbs); outtextxy(620,250,gdbs);
  381.            end;
  382.  
  383.            procedure rajz;
  384.            begin
  385.             q:=0; qq:=0;
  386.             initgraph(q,qq,'d:\tp\bgi');
  387.             settextstyle(2,0,5);
  388.             alap;
  389.             repeat
  390.              y:=50;
  391.              [régi grafikonok letörlése@N
  392.              setfillstyle(1,0);   bar(51,1,600,100);
  393.              bar(51,102,600,202);
  394.              bar(51,204,600,304); setfillstyle(1,1);
  395.              repeat
  396.               y:=y+1;
  397.               param;
  398.               kirajzol;
  399.               if kap=1 then begin
  400.                setfillstyle(1,0); bar(620,50,650,270);
  401.                setfillstyle(1,1); kiir2;
  402.               end;
  403.              until (keypressed) or (y=600);
  404.              if (y=600) then begin
  405.               repeat kar:=readkey;
  406.               until (kar='o') or (kar='i');
  407.              end
  408.               else kar:=readkey;
  409.             until kar='o';
  410.             closegraph;
  411.            end;
  412.  
  413.            begin
  414.             gdb:=0; bdb:=0; fdb:=0;
  415.             randomize; kezdet;
  416.             tolt2(fdb,'f'); tolt2(bdb,'b');
  417.             tolt2(gdb,'g');
  418.             repeat
  419.              clrscr;
  420.              write('1. Numerikus kijelzés is');
  421.              writeln(' legyen - lassu!');
  422.              write('2. Csak grafikon legyen');
  423.              writeln('- gyors!');
  424.              write('Tehát? '); readln(kap); rajz;
  425.             until kar='o';
  426.            end.
  427.  
  428.  
  429.           A mellékelt Pascal nyelvû program (ld. lista) ezt  valósítja
  430.           meg: három párhuzamosan  futó grafikonon követhetjük  nyomon
  431.           az  egyes  fajok  népességét,  azok  alakulásának   egymásra
  432.           hatását.    A    programban    adott    születési-halálozási
  433.           valószínûségeket  használva  egy  20x20-as  "világban", igen
  434.           látványos,  hosszú  életû  modelleket  kapunk  a   farkasok,
  435.           bárányok és "gazok" számának rendre a 100, 100, 200  illetve
  436.           a 80, 150,  170 értékeket adva.  A programban a  fûmagokat a
  437.           szél  messzire  viheti,  s  az  állatok elmenekülnek arról a
  438.           helyrôl,  ahol  nincs  táplálék.    Egészen  más  a   futási
  439.           eredmény,  mint  a  szomszédsághoz  kötött,  "buta"  állatok
  440.           esetében!    Persze  még   itt  sincs   a  dolognak    vége:
  441.           gondoskodhatnánk  öregedésrôl  is,  az  egyes  generációkhoz
  442.           eltérô  szaporodási,  halálozási  valószínûségeket rendelve,
  443.           és így tovább ...
  444.  
  445.  
  446.                               @VA nagy játszma@N
  447.  
  448.           Valahol  Földünk   globális  problémái   is  hasonlóak.   Az
  449.           emberiséget a túlnépesedés, a demográfiai robbanás  veszélye
  450.           fenyegeti @<9301\EMBIC.GIF>(lásd az ábrát),@N
  451.  
  452.           mivel  a   születési  arányszám   jelentôsen  meghaladja   a
  453.           halálozási rátát.  (Közbevetôleg: ez  nem azt  jelenti, hogy
  454.           az emberiség  szaporasága változott  volna meg  drámaian; az
  455.           arányeltolódás  igazi  oka   a  halálozási  arány   jelentôs
  456.           csökkenése  mind  a  csecsemôkorban,  mind az életkor végén,
  457.           azaz  a   várható  élettartam   jelentôs  növekedése).    De
  458.           tapasztaljuk  bolygónkon  az  ellenkezô  jelenséget  is:   a
  459.           környezetvédelem  elôtérbe  kerülése,  fokozódó megerôsödése
  460.           ellenére  állati,  növényi  fajok  jutnak  el  a kipusztulás
  461.           határára,  vagy   tüntek  el   már  véglegesen   a  globális
  462.           történelem  süllyesztôjében.  Jogos  tehát  a kérdés: hogyan
  463.           biztosítható  egy  faj  tartós  fennmaradása,  az  egyensúly
  464.           állapota, a stabilitás?
  465.  
  466.           Kezdjünk  bele  -  Eigen  professzor  könyve  nyomán  -  egy
  467.           elvont, de  talán izgalmas  kockajátékba, a  születés és  az
  468.           elmúlás   globális   játszmájának   modellezésébe.   A   két
  469.           "játékos" (élet és  halál) elôtt három  alternatív lehetôség
  470.           áll, három  stratégia között  választhatnak, attól  függôen,
  471.           hogy hogyan reagálnak az egyedek számának változására.
  472.  
  473.           1. A  születés (vagy  a halálozás)  gyakorisága a  populáció
  474.           nagyságától  függ,  úgy  hogy  a gyakoriság változása azonos
  475.           irányú  a   népesség  változásával.   Magyarán  a   lakosság
  476.           számának    növekedtével    a    születések    (halálozások)
  477.           gyakorisága  is  emelkedik,  a  népesség  fogyásával   pedig
  478.           csökken.  Ez  --   a  továbbiakban  "konform"   stratégiának
  479.           nevezett,  ""S+"-szal  jelölt  --  stratégia  a természetben
  480.           meglehetôsen gyakori, majdnem  kizárólagos. De az  élettelen
  481.           világban  is  találhatunk  rá  példát:  a  radioaktív bomlás
  482.           jelenségénél (mint  már korábban  utaltunk rá)  az idôegység
  483.           alatt  elbomló  atommagok  száma  a  magok számával arányos.
  484.           Érdemes  végiggondolni,   hogy  míg   a  születések    fenti
  485.           értelemben konform  volta az  egyensúly, a  stabilitás ellen
  486.           ható tényezô, addig a  halálozás ""S+" jellege a  stabilitás
  487.           felé mozgatja a rendszert.
  488.  
  489.           2.  A  születés   (halálozás)  valószínûsége   (gyakorisága)
  490.           független a népesség  lélekszámától, annak változásától.  Ez
  491.           az indifferens,  semleges --  ""S0"-val jelölt  -- stratégia
  492.           az  élôvilágban  meglehetôsen  valószerûtlen,  irreális. Más
  493.           jelenségeket tekintve,  azonban találhatunk  példákat. Ilyen
  494.           lehet  --  a  manapság  sajnos környezetünkben is aktuálissá
  495.           vált -- migráció. A be- és kivándorlás mértéke (és az  ennek
  496.           következtében elôálló népességváltozás) gyakorlatilag nem  a
  497.           népesség  eredeti  számának  függvénye,  legalábbis bizonyos
  498.           határok  között.  Vagy  egy  egyszerûbb  jelenség:  a kémiai
  499.           reakciók    jelentôs    részénél    az    idôegység    alatt
  500.           keletkezô/elbomló anyag  mennyisége független  a komponensek
  501.           mennyiségétôl.
  502.  
  503.           3.  A  születések  (halálozások)  gyakorisága  a   populáció
  504.           létszámával  ellentétes  irányban  változik.  Azaz   növekvô
  505.           létszám a születések  számának csökkenését vonja  maga után,
  506.           míg a csökkenô létszám növeli a születések és a  halálozások
  507.           számát. Ez a "kontrastratégia"  ""S-" a természetben ha  nem
  508.           is gyakori,  de elôfordul.  Gondoljunk csak  a sûrû  erdôben
  509.           egy  új  facsemete  kifejlôdésének  valószínûségére,  vagy a
  510.           csordából   kiszakadt   növényevôk   túlélési   esélyére   a
  511.           ragadozókkal szemben.
  512.  
  513.           Természetesen  ez  a  leírás  csak  elsô  közelítése lehet a
  514.           reakciók    változatainak,    hiszen    csak    együttjárási
  515.           irányokról, elôjelekrôl beszéltünk,  és semmit sem  mondtunk
  516.           a  tényezôk  közötti  összefüggések jellegérôl, erôsségérôl.
  517.           Késôbb  majd  ezt  is  megtesszük, most mindenesetre lássuk,
  518.           hogy  milyen  módon  befolyásolják  a különbözô stratégiák a
  519.           népesség alakulását, lélekszámának stabilitását, vagy  éppen
  520.           robbanásszerû  változását.  Világos,  hogy  a két "ellenfél"
  521.           külön-külön három változatot  "játszhat meg", így  kilenc fô
  522.           esete  lehet   a  "partiknak".   Ezeket  a   játékelméletben
  523.           használatos  ún.  elszámolási  mátrixhoz hasonló táblázatban
  524.           ábrázolva -- s az eredményeket megelôlegezve -- a  következô
  525.           képet kapjuk:
  526.  
  527.  
  528.                                   születés
  529.                             S+             S0               S-
  530.            h       S+      változó         stabil          stabil
  531.            a
  532.            l       S0      instabil        közömbös        stabil
  533.            á
  534.            l       S-      instabil        instabil        változó
  535.  
  536.  
  537.           Mint  látható,  négy  lehetséges  esetbe rendezhetô a kilenc
  538.           játszma.  Mit  takarnak  ezek  a  táblázatban   feltüntetett
  539.           fogalmak?
  540.  
  541.           1.  ""Stabil"  egy  populáció  egyensúly  esetén,  azaz ha a
  542.           születés  és  a  halálozás  dinamikus  egyensúlyban  van.  A
  543.           lélekszám  bármilyen  irányú  változása  ellenkezô   értelmû
  544.           folyamatot  indít  el  a  gyakoriság(ok)ban,  így a népesség
  545.           önmagát szabályozza,  spontán módon  elkerüli a  demográfiai
  546.           katasztrófákat.  A   modell  determinisztikusan   viselkedik
  547.           (nagy elemszám esetén),  a jövô kiszámolható  (jelezhetô), a
  548.           rendszernek van végállapota.
  549.  
  550.           2.  ""Közömbös"  esetben   a  lélekszám  bármilyen   értéket
  551.           felvehet, nem érvényesül szabályozó hatás, s így a jövô  nem
  552.           jósolható, nem determinált, nincs végállapot.
  553.  
  554.           3.  ""Instabil"   a  rendszer,   ha  az   egyensúlytól  való
  555.           kismértékû   elmozdulás   úgy   befolyásolja   a  születési,
  556.           halálozási gyakoriságokat, hogy  azok a megindult  változást
  557.           erôsítik.   A   rendszer   megállíthatatlanul   sodródik   a
  558.           katasztrófa felé:   vagy demográfiai  robbanás, vagy  a  faj
  559.           kipusztulása  következik  be.  Megadható olyan kezdôállapot,
  560.           melybôl mindkét végállapot elérhetô.
  561.  
  562.           4.  A  ""változó"  rendszer  végeredményben  az  elôzô három
  563.           kombinációjaként jön létre. Pontosabban szólva a  mennyiségi
  564.           összefüggések  (azaz  a  gyakoriságok  mértéke,  a növekedés
  565.           üteme) mutatják meg, hogy  a rendszer a fenti  három állapot
  566.           melyikébe kerül. A sajnálatos(?)  csak az, hogy a  számunkra
  567.           igazán érdekes esetek ebben a "változó" -- nem triviális  --
  568.           kategóriában találhatók.
  569.  
  570.           Sorozatunk következô részében megvizsgáljuk  (megindokoljuk)
  571.           ezen  négy  alapesetet,  illetve  létrejöttüket, valamint az
  572.           egyes növekedési modelleket.
  573.  
  574.           @KBánhegyesi Zoltán@N